package gui;

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import restaurant.Adresse;
import Usager.*;
import java.awt.Dialog.ModalExclusionType;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

/**
 * 
 * @author julian
 *
 * Permet l'ajout de compte dans la liste de compte
 */
public class Inscription extends JFrame {

	private JFrame frame;
	private JPanel contentPane;
	private JTextField tbLogin;
	private JTextField tbPassword;
	private JTextField tbNom;
	private JTextField tbRue;
	private JTextField tbAdresse;
	private JTextField tbPostalCode;
	private JTextField tbTelephone;

	JRadioButton rbClient;
	JRadioButton rbLivreur;
	JRadioButton rbRestaurateur;
	JRadioButton rbEntrepreneur;
	
	// Groupe de bouton pour les boutons radio
	private ButtonGroup group;
	
	// Liste des comptes
	private ListeCompte liste;
	private JLabel lbNom;
	
	private JLabel lbRue;

	/**
	 * Create the frame.
	 */
	public Inscription(JFrame jframe) {
		setResizable(false);
		
		// Liste des comptes
		liste = ListeCompte.getInstance();
		frame = jframe;
		
		setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
		setTitle("Inscription");
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		setBounds(100, 100, 477, 324);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JPanel panneauPrincipal = new JPanel();
		contentPane.add(panneauPrincipal, BorderLayout.CENTER);
		panneauPrincipal.setLayout(null);
		
		JLabel lblIdentificateur = new JLabel("Identificateur");
		lblIdentificateur.setBounds(10, 11, 100, 14);
		panneauPrincipal.add(lblIdentificateur);
		
		tbLogin = new JTextField();
		tbLogin.setBounds(135, 11, 150, 20);
		panneauPrincipal.add(tbLogin);
		tbLogin.setColumns(10);
		
		JLabel lblMotDePasse = new JLabel("Mot de Passe");
		lblMotDePasse.setBounds(10, 36, 100, 14);
		panneauPrincipal.add(lblMotDePasse);
		
		JLabel lbAdresse = new JLabel("Adresse");
		lbAdresse.setBounds(10, 176, 100, 14);
		panneauPrincipal.add(lbAdresse);
		
		JLabel lbCodePostal = new JLabel("Code Postal");
		lbCodePostal.setBounds(10, 202, 100, 14);
		panneauPrincipal.add(lbCodePostal);
		
		JLabel lblTelephone = new JLabel("Telephone");
		lblTelephone.setBounds(10, 227, 100, 14);
		panneauPrincipal.add(lblTelephone);
		
		tbPassword = new JTextField();
		tbPassword.setBounds(135, 36, 150, 20);
		panneauPrincipal.add(tbPassword);
		tbPassword.setColumns(10);
		
		tbAdresse = new JTextField();
		tbAdresse.setBounds(135, 176, 150, 20);
		panneauPrincipal.add(tbAdresse);
		tbAdresse.setColumns(10);
		
		tbPostalCode = new JTextField();
		tbPostalCode.setBounds(135, 202, 150, 20);
		panneauPrincipal.add(tbPostalCode);
		tbPostalCode.setColumns(10);
		
		tbTelephone = new JTextField();
		tbTelephone.setBounds(135, 227, 150, 20);
		panneauPrincipal.add(tbTelephone);
		tbTelephone.setColumns(10);
		
		rbClient = new JRadioButton("Client");
		rbClient.setSelected(true);
		rbClient.setBounds(291, 11, 150, 23);
		panneauPrincipal.add(rbClient);
		
		rbLivreur = new JRadioButton("Livreur");
		rbLivreur.setBounds(291, 37, 150, 23);
		panneauPrincipal.add(rbLivreur);
		
		rbRestaurateur = new JRadioButton("Restaurateur");
		rbRestaurateur.setBounds(291, 63, 150, 23);
		panneauPrincipal.add(rbRestaurateur);
		
		rbEntrepreneur = new JRadioButton("Entrepreneur");
		rbEntrepreneur.setBounds(291, 89, 150, 23);
		panneauPrincipal.add(rbEntrepreneur);
		
		JButton btnCreerCompte = new JButton("Creer Compte");
		btnCreerCompte.addActionListener(new ActionListener() {
			
			// Creation du compte demande
			public void actionPerformed(ActionEvent e) {
				
				// Verifie si le minimum d'info requis est entre
				if (tbLogin.getText() == "" || tbPassword.getText() == ""){
					JOptionPane.showMessageDialog(null, "Des informations necessaires sont manquantes", "Erreur", JOptionPane.INFORMATION_MESSAGE);
				}
				
				else
				{
					// Creation de client
					if(rbClient.isSelected()){
						
						Client nouveauClient = new Client(tbLogin.getText(),tbPassword.getText(), 
														  new Profil(tbNom.getText(), tbTelephone.getText(),
														  new Adresse(tbRue.getText(), tbAdresse.getText(), tbPostalCode.getText())));
						
						//Client nouveauClient = new Client(new AbstracCompte(tbLogin.getText(), tbPassword.getText()),
					
						
						try {
							liste.ajouterCompte(nouveauClient);
							
						} catch (Exception e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						}
					}
					
					// Creation de livreur
					if(rbLivreur.isSelected()){
						
					}
					
					// Creation de restaurateur
					
					// Creation d'entrepreneur
					//frame.setContentPane(new ClientPanel(nouveauClient))
					dispose();
					
				}
			}
		});
		btnCreerCompte.setBounds(329, 258, 122, 23);
		panneauPrincipal.add(btnCreerCompte);
		
		JButton btnQuitter = new JButton("Quitter");
		
		btnQuitter.addActionListener(new ActionListener() {
			// Fermture de la fenetre
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
		btnQuitter.setBounds(230, 258, 89, 23);
		panneauPrincipal.add(btnQuitter);
		
		// Creation du bouton Groupe et ajout des boutons
		group = new ButtonGroup();
		group.add(rbEntrepreneur);
		group.add(rbRestaurateur);
		group.add(rbLivreur);
		group.add(rbClient);
		
		lbNom = new JLabel("Nom");
		lbNom.setBounds(10, 126, 100, 14);
		panneauPrincipal.add(lbNom);
		
		tbNom = new JTextField();
		tbNom.setColumns(10);
		tbNom.setBounds(135, 126, 150, 20);
		panneauPrincipal.add(tbNom);
		
		tbRue = new JTextField();
		tbRue.setColumns(10);
		tbRue.setBounds(135, 151, 150, 20);
		panneauPrincipal.add(tbRue);
		
		lbRue = new JLabel("Rue");
		lbRue.setBounds(10, 151, 100, 14);
		panneauPrincipal.add(lbRue);
		
		// Vide toutes les selections
		group.clearSelection();
	}
	
	// Fermeture de la fermeture
}
